﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using Meqs.Entity;

namespace Meqs.Logic.Interface
{
    public interface ITeacherInfoLogic : ICommonLogic<TeacherInfo, int>
    {
        /// <summary>
        /// 根据拼音查询教师
        /// </summary>
        /// <param name="pinyin"></param>
        /// <param name="schoolMark"></param>
        /// <returns></returns>
        IList<TeacherInfo> GetTeacherByPinyin(string pinyin, string schoolMark);

        /// <summary>
        /// 根据拼音查询教师
        /// </summary>
        /// <param name="pinyin"></param>
        /// <param name="schoolMark"></param>
        /// <returns></returns>
        IList<TeacherInfo> GetTeacherByPinyinWithoutEffect(string pinyin, string schoolMark);

        /// <summary>
        /// 根据拼音查询教师
        /// </summary>
        /// <param name="pinyin"></param>
        /// <param name="schoolMark"></param>
        /// <returns></returns>
        IList<TeacherInfo> GetAllTeacherOrderByPinyin(string schoolMark);

        /// <summary>
        /// 删除所有用户信息
        /// </summary>
        /// <param name="listUserId"></param>
        /// <returns></returns>
        int DeleteTeacherInfo(List<int> listUserId);

        /// <summary>
        /// 重置用户密码，可批量
        /// </summary>
        /// <param name="listUserId"></param>
        /// <returns></returns>
        int ResetPassword(List<int> listUserId);

        /// <summary>
        /// 将List里面的教师的密码重置为strPwd
        /// </summary>
        /// <param name="strPwd"></param>
        /// <param name="listUserId"></param>
        /// <returns></returns>
        int ResetPassword(string strPwd, List<int> listUserId);

        /// <summary>
        /// 要据条件获取教师信息
        /// </summary>
        /// <param name="ht"></param>
        /// <returns></returns>
        IList<CustomTeacherInfo> FindTeacherByCause(Hashtable ht);

        /// <summary>
        /// 根据教师工号更新教师信息
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        int UpdateByTeacherCode(TeacherInfo teacherInfo);

        /// <summary>
        /// 导入教师数据
        /// </summary>
        /// <param name="listUserId"></param>
        /// <returns></returns>
        int ImportTeacherInfo(string schoolMark, DataTable dt, int opType);

        /// <summary>
        /// 根据工号查教师
        /// </summary>
        /// <param name="teacherCode"></param>
        /// <param name="schoolMark"></param>
        /// <returns></returns>
        TeacherInfo FindTeachByCode(string teacherCode, string schoolMark);
        /// <summary>
        /// 教师登陆
        /// </summary>
        /// <param name="schoolMark"></param>
        /// <param name="stuCode"></param>
        /// <param name="pass"></param>
        /// <returns></returns>
        int CheckLogin(string schoolCode, string teachCode, string pass);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="teacherID"></param>
        /// <param name="pinyin"></param>
        /// <param name="schoolMark"></param>
        /// <returns></returns>
        IList<TeacherInfo> GetTeacherByPinyin(int teacherID, string pinyin, string schoolMark);
        /// <summary>
        /// 班级教师列表
        /// </summary>
        /// <param name="ht"></param>
        /// <returns></returns>
        IList<TeacherInfo> FindClassTeachers(Hashtable ht);


        /// <summary>
        /// 获取指定年级下所有班级的班主任信息
        /// </summary>
        /// <param name="grade"></param>
        /// <param name="schoolMark"></param>
        /// <returns></returns>
        IList<HeaderInfo> FindHeaderByGrade(int grade, string schoolMark);
    }
}